<?php
class Errors {

	// BucketTool Errors
	const BucketTool_CODE_MISSING_OPER_MODE = 90;
	const BucketTool_MESG_MISSING_OPER_MODE = "No operating mode specified";
	
	const BucketTool_CODE_MISSING_OPER_FUNCTION = 91;
	const BucketTool_MESG_MISSING_OPER_FUNCTION = "No operating mode function specified";
	
	const BucketTool_CODE_UNKNOWN_OPER_MODE = 92;
	const BucketTool_MESG_UNKNOWN_OPER_MODE = "Unknown operating mode specified";
	
	const BucketTool_CODE_UNKNOWN_OPER_FUNCTION = 93;
	const BucketTool_MESG_UNKNOWN_OPER_FUNCTION = "Unknown operating mode function specified";
		
	
	// CLIBucketTool Errors
	const CLIBucketTool_CODE_MODE_ALREADY_SET = 100;
	const CLIBucketTool_MESG_MODE_ALREADY_SET = "Operating mode already set";
	
	const CLIBucketTool_CODE_INVALID_FLAG = 101;
	const CLIBucketTool_MESG_INVALID_FLAG = "Specified flag is invalid";
	
	const CLIBucketTool_CODE_MODE_NOT_SET = 102;
	const CLIBucketTool_MESG_MODE_NOT_SET = "Operating mode not set";
	
	const CLIBucketTool_CODE_MODE_NOT_DEFINED = 103;
	const CLIBucketTool_MESG_MODE_NOT_DEFINED = "Operating mode is set, but not defined";
	
	const CLIBucketTool_CODE_BUCKET_NOT_SET = 104;
	const CLIBucketTool_MESG_BUCKET_NOT_SET = "Bucket name not set (use -b)";
	
	const CLIBucketTool_CODE_LOCAL_OBJECT_NOT_SET = 105;
	const CLIBucketTool_MESG_LOCAL_OBJECT_NOT_SET = "Local object not set (use -l)";
	
	const CLIBucketTool_CODE_LOCAL_OBJECT_NOT_EXIST = 106;
	const CLIBucketTool_MESG_LOCAL_OBJECT_NOT_EXIST = "Local object does not exist";
	
	const CLIBucketTool_CODE_LOCAL_OBJECT_DIR_BUT_NO_RECURSE = 107;
	const CLIBucketTool_MESG_LOCAL_OBJECT_DIR_BUT_NO_RECURSE = "Local object is a directory, but recursion was not specified (use -j, or specify a file)";
	
	const CLIBucketTool_CODE_REMOTE_OBJECT_NOT_SET = 108;
	const CLIBucketTool_MESG_REMOTE_OBJECT_NOT_SET = "Remote object not set (use -o)";
	
	const CLIBucketTool_CODE_SDB_BASE_DOMAIN_NOT_SET = 110;
	const CLIBucketTool_MESG_SDB_BASE_DOMAIN_NOT_SET = "SDB Base domain not set";
	
	const CLIBucketTool_CODE_SDB_DOMAIN_NOT_SET = 111;
	const CLIBucketTool_MESG_SDB_DOMAIN_NOT_SET = "SDB Domain not set";
	
	const CLIBucketTool_CODE_REMOTE_OBJECT_VERSION_NOT_SET = 112;
	const CLIBucketTool_MESG_REMOTE_OBJECT_VERSION_NOT_SET = "Remote object version ID not set (use -i, set as \"*\" for all versions or null ID)";
	
	const CLIBucketTool_CODE_USER_SDB_DOMAIN_NOT_SET = 113;
	const CLIBucketTool_MESG_USER_SDB_DOMAIN_NOT_SET = "No SDB Domain set (use -a)";
	
	const CLIBucketTool_CODE_OBJECT_STAT_MASTER_FETCH_FAIL = 114;
	const CLIBucketTool_MESG_OBJECT_STAT_MASTER_FETCH_FAIL = "Failed to fetch master object from SDB domain. Try re-sycing S3 bucket to SDB domains";
	
	const CLIBucketTool_CODE_MINS_REQ_IF_PRIVATE = 115;
	const CLIBucketTool_MESG_MINS_REQ_IF_PRIVATE = "Minutes (in php strtotime() format) required for private acl. Set with -m [minutes] or set to public -p";
	
	const CLIBucketTool_CODE_PROFILE_NAME_NOT_SET = 116;
	const CLIBucketTool_MESG_PROFILE_NAME_NOT_SET = "Profile name not set (use --profilename)";
	
	const CLIBucketTool_CODE_FLAG_MASTER_LOCAL_NOT_SET = 117;
	const CLIBucketTool_MESG_FLAG_MASTER_LOCAL_NOT_SET = "Sync master must be set to remote or local (use --masterlocal or --masterremote)";
	
	const CLIBucketTool_CODE_UUID_NOT_SET = 119;
	const CLIBucketTool_MESG_UUID_NOT_SET = "UUID not set (use --uuid)";
	
	const CLIBucketTool_CODE_SDB_QUERY_MISSING = 120;
	const CLIBucketTool_MESG_SDB_QUERY_MISSING = "Missing select query; provide a properly quoted select query";
	
	//S3Utils Errors
	const S3Utils_CODE_S3_FAILED_INIT_S3 = 200;
	const S3Utils_MESG_S3_FAILED_INIT_S3 = "Failed to init S3 object";
	
	const S3Utils_CODE_S3_FAILED_BUCKET_LIST = 201;
	const S3Utils_MESG_S3_FAILED_BUCKET_LIST = "S3 Failed to fetch list of buckets";
	
	const S3Utils_CODE_S3_BUCKET_NOT_SET = 202;
	const S3Utils_MESG_S3_BUCKET_NOT_SET = "S3 bucket not set";
	
	const S3Utils_CODE_S3_FAILED_TO_GET_OBJECTS = 203;
	const S3Utils_MESG_S3_FAILED_TO_GET_OBJECTS = "S3 unable to get list of objects";
	
	const S3Utils_CODE_S3_FAILED_CREATE_BUCKET = 204;
	const S3Utils_MESG_S3_FAILED_CREATE_BUCKET = "S3 failed to create bucket";
	
	const S3Utils_CODE_S3_BUCKET_ALREADY_EXIST = 205;
	const S3Utils_MESG_S3_BUCKET_ALREADY_EXIST = "S3 bucket already exists";
	
	const S3Utils_CODE_S3_BUCKET_DOESNT_EXIST = 206;
	const S3Utils_MESG_S3_BUCKET_DOESNT_EXIST = "S3 bucket does not exists";
	
	const S3Utils_CODE_S3_BUCKET_FAILED_DELETE = 207;
	const S3Utils_MESG_S3_BUCKET_FAILED_DELETE = "S3 failed to delete bucket";
	
	const S3Utils_CODE_S3_BUCKET_FAILED_FETCH_VERSIONING = 208;
	const S3Utils_MESG_S3_BUCKET_FAILED_FETCH_VERSIONING = "S3 failed to fetch bucket versioning state";
	
	const S3Utils_CODE_S3_BUCKET_FAILED_ENABLE_VERSIONING = 209;
	const S3Utils_MESG_S3_BUCKET_FAILED_ENABLE_VERSIONING = "S3 failed to enable bucket versioning";
	
	const S3Utils_CODE_S3_OBJECT_UPLOAD_FAILED = 210;
	const S3Utils_MESG_S3_OBJECT_UPLOAD_FAILED = "S3 Failed to upload object";
	
	const S3Utils_CODE_S3_OJB_NUKE_FAIL = 211;
	const S3Utils_MESG_S3_OJB_NUKE_FAIL = "S3 failed to nuke object";
	
	const S3Utils_CODE_S3_OBJECT_DELETE = 212;
	const S3Utils_MESG_S3_OBJECT_DELETE = "S3 failed to delete object";
	
	const S3Utils_CODE_OBJECT_GET_URL_FAIL = 213;
	const S3Utils_MESG_OBJECT_GET_URL_FAIL = "Failed to fetch URL for S3 object";
	
	const S3Utils_CODE_S3_OBJECT_GET_ACL_FAIL = 214;
	const S3Utils_MESG_S3_OBJECT_GET_ACL_FAIL = "Failed to fetch ACL for S3 object";
	
	const S3Utils_CODE_CANT_OPEN_LOCAL_FILE = 215;
	const S3Utils_MESG_CANT_OPEN_LOCAL_FILE = "Unable to open local file for 'w+'";
	
	const S3Utils_CODE_S3_OBJECT_DOWNLOAD_FAIL = 216;
	const S3Utils_MESG_S3_OBJECT_DOWNLOAD_FAIL = "Download of object failed"; 
	
	const S3Utils_CODE_S3_OBJECT_STORAGE_CHANGE = 217;
	const S3Utils_MESG_S3_OBJECT_STORAGE_CHANGE = "Failed to change object storage mode";
	
	const S3Utils_CODE_S3_BUCKET_FAILED_DELETE_ALL_OBJ_VERSIONS = 218;
	const S3Utils_MESG_S3_BUCKET_FAILED_DELETE_ALL_OBJ_VERSIONS = "Failed to delete all versions of all bucket objects";
	
	const S3Utils_CODE_S3_BUCKET_FAILED_DISABLE_VERSIONING = 219;
	const S3Utils_MESG_S3_BUCKET_FAILED_DISABLE_VERSIONING = "S3 failed to enable bucket versioning";
	
	const S3Utils_CODE_CANT_MK_LOCAL_DIR = 220;
	const S3Utils_MESG_CANT_MK_LOCAL_DIR = "Failed to make local directory";
	
	const S3Utils_CODE_CANT_CHMOD_LOCAL_DIR = 221;
	const S3Utils_MESG_CANT_CHMOD_LOCAL_DIR = "Failed to chmod local directory";
	
	const S3Utils_CODE_S3_FAILED_BUCKET_ACL_LIST = 222;
	const S3Utils_MESG_S3_FAILED_BUCKET_ACL_LIST = "Failed to fetch ACLs for bucket";
	
	// SDB Utils
	const SDBUtils_CODE_FAILED_CREATE_DOMAIN = 300;
	const SDBUtils_MESG_FAILED_CREATE_DOMAIN = "SDB failed to create domain";
	
	const SDBUtils_CODE_FAILED_FETCH_DOMAIN_LIST = 301;
	const SDBUtils_MESG_FAILED_FETCH_DOMAIN_LIST = "SDB failed to fetch list of domains";
	
	const SDBUtils_CODE_FAILED_DELETE_DOMAIN = 302;
	const SDBUtils_MESG_FAILED_DELETE_DOMAIN = "SDB failed to delete domains";
	
	const SDBUtils_CODE_FAILED_DOMAIN_GET_ALL = 303;
	const SDBUtils_MESG_FAILED_DOMAIN_GET_ALL = "SDB failed to get all from domain";
	
	const SDBUtils_CODE_DOMAIN_NOT_EXIST = 304;
	const SDBUtils_MESG_DOMAIN_NOT_EXIST = "Domain does not exist";
	
	const SDBUtils_CODE_DOMAIN_SELECT_FAILED = 305;
	const SDBUtils_MESG_DOMAIN_SELECT_FAILED = "Select statement on domain failed";
	
	const SDBUtils_CODE_ITEM_PUT_FAILED = 306;
	const SDBUtils_MESG_ITEM_PUT_FAILED = "Item put failed";
	
	const SDBUtils_CODE_ITEM_BATCH_PUT_FAILED = 307;
	const SDBUtils_MESG_ITEM_BATCH_PUT_FAILED = "Item put failed";
	
	const SDBUtils_CODE_ITEM_GET_FAILED = 308;
	const SDBUtils_MESG_ITEM_GET_FAILED = "Item get failed";

	const SDBUtils_CODE_ITEM_DELETE_FAILED = 309;
	const SDBUtils_MESG_ITEM_DELETE_FAILED = "Item delete failed";
	
	const SDBUtils_CODE_ITEM_EXIST_FAILED = 310;
	const SDBUtils_MESG_ITEM_EXIST_FAILED = "Item exist failed";
	
	// Utils errors
	const Utils_CODE_EXPECTED_ARRAY = 400;
	const Utils_MESG_EXPECTED_ARRAY = "Array expected";
	
	const Utils_CODE_EXPECTED_INT = 401;
	const Utils_MESG_EXPECTED_INT = "Integer expected";

	const CLIOpts_CODE_BAD_SHORT = 500;
	const CLIOpts_MESG_BAD_SHORT = "Bad short option provided";
	
	const CLIOpts_CODE_BAD_LONG = 501;
	const CLIOpts_MESG_BAD_LONG = "Bad long option provided";
	
	const CLIOpts_CODE_BAD_SHORT_NO_ARG = 502;
	const CLIOpts_MESG_BAD_SHORT_NO_ARG = "Bad short option provided; expect an arg to follow";
	
	const CLIOpts_CODE_BAD_LONG_NO_ARG = 503;
	const CLIOpts_MESG_BAD_LONG_NO_ARG = "Bad long option provided; expect an arg to follow";
	
	// SyncProfile erros
	const SyncProfile_CODE_PROPERTY_NOT_SET = 600;
	const SyncProfile_MESG_PROPERTY_NOT_SET = "Property not set";
	
	const SyncProfile_CODE_PROFILE_ALREADY_DEF = 601;
	const SyncProfile_MESG_PROFILE_ALREADY_DEF = "The requested sync profile is already defined";
	
	const SyncProfile_CODE_LOCAL_OBJ_NOT_DIR = 602;
	const SyncProfile_MESG_LOCAL_OBJ_NOT_DIR = "Local object is not a directory or does not exist";
	
	const SyncProfile_CODE_LOCAL_OBJ_DIR_ERR = 603;
	const SyncProfile_MESG_LOCAL_OBJ_DIR_ERR = "Unable to open directory for read";
	
	const SyncProfile_CODE_LOCAL_OBJ_UNLINK_ERR = 604;
	const SyncProfile_MESG_LOCAL_OBJ_UNLINK_ERR = "Unable to delete local file";
	
	// GPG errors	
	const GPG_CODE_CANT_EXEC_GPG = 700;
	const GPG_MESG_CANT_EXEC_GPG = "GPG path is not executable";
	
	const GPG_CODE_HOME_NOT_DIR = 701;
	const GPG_MESG_HOME_NOT_DIR = "GPG home path is not a directory";
	
	const GPG_CODE_INPUT_IS_NOT_FILE = 702;
	const GPG_MESG_INPUT_IS_NOT_FILE = "Provided input is not a valid file";
	
	const GPG_CODE_IDENTITY_NOT_SET = 703;
	const GPG_MESG_IDENTITY_NOT_SET = "Identity not set";
	
	const GPG_CODE_PASSPHRASE_NOT_SET = 704;
	const GPG_MESG_PASSPHRASE_NOT_SET = "Passphrase not set";

	const GPG_CODE_OUTPUT_IS_NOT_WRITEABLE = 705;
	const GPG_MESG_OUTPUT_IS_NOT_WRITEABLE = "Can't write to provided output file";
	
	

	public static function helpModes ($cmd) {
		echo "$cmd: Work with AWS resources\n\n";
		echo "Modes: (issue '[mode] help' for help related to each mode)\n";
		echo "bucket  work with S3 buckets\n";
		echo "object  work with S3 bucket objects\n";
		echo "dbase   work with SDB domains related to S3 buckets and objects\n";
		echo "sync    sync files/object to/from local system/S3\n";
		echo "awslib  returns constants and details related to the local AWS lib\n";
		echo "\n\n";
	}
	
	public static function helpBucketFunctions ($cmd) {
		echo "$cmd bucket: Work with S3 Buckets\n\n";
		echo "Functions:\n";
		echo "create            create an S3 bucket\n";
		echo "delete            delete an S3 bucket object\n";
		echo "list              list all objects in an S3 bucket\n";
		echo "show              Show all available S3 buckets\n";
		echo "versioningStatus  Show versioning status of an S3 bucket\n";
		echo "versioningEnable  Enable versioning on an S3 bucket\n";
		echo "versioningDisable Disable versioning on an S3 bucket\n";
		echo "listrawobjects    Generate a raw list of bucket objects\n";
		echo "slowobjectnuke    Deletes all objects by listing actual S3 objects\n";
		echo "help              Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpBucketCreate () {
		echo "Create a new S3 bucket\n\n";
		echo "-b | --bucket [bucketName]  Name of bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpBucketDelete () {
		echo "Delete an S3 bucket\n\n";
		echo "-b | --bucket [bucketName]  Name of bucket\n";
		echo "-f | --force                Force delete the bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpBucketVersioningEnable () {
		echo "Enables S3 bucket versioning\n\n";
		echo "-b | --bucket [bucketName]  Name of bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpBucketListObjects () {
		echo "List all objects in an S3 bucket\n\n";
		echo "-b | --bucket [bucketName]    Name of bucket\n";
		echo "-d | --folder [remoteFolder]  S3 'prefix' which to limit search\n";
		echo "-h | --help                   Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpBucketVersioningStatus () {
		echo "Shows status of S3 bucket versioning\n\n";
		echo "-b | --bucket [bucketName]  Name of bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpBucketSlowObjectNuke() {
		echo "Deletes objects; one by one using actual S3 results... no dbase\n\n";
		echo "-b | --bucket [bucketName]  Name of bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}

	public static function helpBucketListRawObjects() {
		echo "Generates a list of raw bucket objects\n\n";
		echo "-b | --bucket [bucketName]  Name of bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectFunctions ($cmd) {
		echo "$cmd object: Work with S3 Bucket Objects\n\n";
		echo "Functions:\n";
		echo "upload      Upload object(s) to an S3 bucket\n";
		echo "download    Download object(s) to an S3 bucket\n";
		echo "delete      Delete object(s) from an S3 bucket\n";
		echo "stat        Show stats of an S3 bucket object\n";
		echo "getacl      Displays ACLs of an S3 bucket object\n";
		echo "setacl      Sets an ACL on an S3 bucket object\n";
		echo "url         Generates a URL for an S3 bucket object\n";
		echo "storage     Change object storage type\n";
		echo "stalepurge  Purge versions where none are latest\n";
		echo "help        Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectPurgeStales () {
		echo "Purge versions where none are latest\n";
		echo "-b | --bucket [bucketName]        Name of bucket\n";
	}
	
	public static function helpObjectUpload() {
		echo "Upload an object to an S3 bucket\n\n";
		echo "-b | --bucket [bucketName]       Name of bucket\n";
		echo "-d | --folder [remoteFolder]     S3 'prefix' in which to place the uploaded object(s) (defaults to '/')\n";
		echo "-l | --localobject [objectName]  Name of local file/dir\n";
		echo "  You may quote a valid file system glob for processing.\n";
		echo "  example: -l \"file001.*\"\n";
		echo "-r | --recursive                  If local object is a directory, upload recursively\n";
		echo "   | --public                     Set ACL to Public\n";		
		echo "   | --open                       Set ACL to Open\n";
		echo "   | --authread                   Set ACL to Auth Read\n";
		echo "   | --ownerread                  Set ACL to Owner Read\n";
		echo "   | --ownerfullcontrol           Set ACL to Owner Full Control\n";
		echo "-s | --standard                   Sets the uploaded object's storage type to standard (as opposed to the default: reduced redundancy)\n";
		echo "-h | --help                       Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectDelete() {
		echo "Delete an object version from an S3 bucket\n\n";
		echo "-b | --bucket [bucketName]        Name of bucket\n";
		echo "-o | --remoteobject [objectName]  Name of remote object\n";
		echo "-i | --versionid                  Version ID of object to delete (\"*\" for all versions)\n";
		echo "-h | --help                       Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectStat() {
		echo "Display stats related to a specific object and all of its versions from an S3 bucket\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-o | --remoteobject [objectName]  * Name of remote object\n";
		echo "-i | --versionid                 Only display stats related to this version ID\n";
		echo "-h | --help                      Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectURL() {
		echo "Fetch a public URL for an object\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-o | --remoteobject [objectName]  * Name of remote object\n";
		echo "-m | --minutes                   * Length of time to make link valid\n";
		echo "                                   Time give as a string compatible with http://us2.php.net/strtotime\n";
		echo "                                   Example: '5 minutes'\n";
		echo "                                   -m is required unless -p is set\n";
		echo "   | --public                     Set ACL to Public\n";		
		echo "   | --open                       Set ACL to Open\n";
		echo "   | --authread                   Set ACL to Auth Read\n";
		echo "   | --ownerread                  Set ACL to Owner Read\n";
		echo "   | --ownerfullcontrol           Set ACL to Owner Full Control\n";		
		echo "-i | --versionid                 Only display stats related to this version ID\n";
		echo "-h | --help                      Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectSetACL() {
		echo "Set the ACL of an object\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-o | --remoteobject [objectName]  * Name of remote object\n";
		echo "   | --public                     Set ACL to Public\n";		
		echo "   | --open                       Set ACL to Open\n";
		echo "   | --authread                   Set ACL to Auth Read\n";
		echo "   | --ownerread                  Set ACL to Owner Read\n";
		echo "   | --ownerfullcontrol           Set ACL to Owner Full Control\n";		
		echo "-h | --help                      Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectGetACL() {
		echo "Get the ACL of an object\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-o | --remoteobject [objectName]  * Name of remote object\n";
		echo "-i | --versionid                 Only display stats related to this version ID\n";
		echo "-h | --help                      Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectDownload() {
		echo "Download an object\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-o | --remoteobject [objectName]  * Name of remote object\n";
		echo "-l | --localobject [objectName]  * Name of local file\n";
		echo "-i | --versionid                 Only display stats related to this version ID\n";
		echo "-h | --help                      Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpObjectStorage() {
		echo "Set object storage. Defaults to 'Reduced Redundancy'\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-o | --remoteobject [objectName]  * Name of remote object\n";
		echo "-s | --standard                  Sets the object's storage type to standard (as opposed to the default: reduced redundancy)\n";
		echo "-h | --help                      Display this help message\n";
	}
		
		
	
	public static function helpDBaseFunctions ($cmd) {
		echo "$cmd dbase: Work with SDB domains related to an S3 Bucket\n\n";
		echo "Functions:\n";
		echo "reset  Reset SDB domains related to an S3 bucket\n";
		echo "sync   Sync S3 bucket object to SDB domains\n";
		echo "select execute a select statement\n";
		echo "list   List SDB domains\n";
		echo "  -b [bucketName] to only show SDB domains related to specified bucket\n";
		echo "items\n";
		echo "  -a [SDBDomain] Domain of which to show items\n";
		echo "help   Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpDbaseSync () {
		echo "Sync S3 Bucket to SDB Domains\n\n";
		echo "-b | --bucket [bucketName]  Only show SDB domains related to specified bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpDbaseReset () {
		echo "Reset SDB Domains\n\n";
		echo "-b | --bucket [bucketName]  Only show SDB domains related to specified bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpDbaseList () {
		echo "List SDB Domains\n\n";
		echo "-b | --bucket [bucketName]  Only show SDB domains related to specified bucket\n";
		echo "-h | --help                 Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpDbaseItems () {
		echo "List items in an SDB Domain\n\n";
		echo "-a | --sdbdomain [sdb domaon]  SDB Domain of which to display items\n";
		echo "-h | --help                    Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpDbaseSelect () {
		echo "Executes a provided select query\n\n";
		echo "provide a properly quoted select query for execution\n";
		echo "\n\n";
	}
	
	public static function helpSyncFunctions ($cmd) {
		echo "$cmd object: Sync objects to/from S3\n\n";
		echo "Functions:\n";
		echo "start    Start a predefined sync job\n";
		echo "new      Define a new sync job\n";
		echo "delete   Delete a defined sync job\n";
		echo "list     List defined sync jobs\n";
		echo "oneshot  Run a one-time sync job\n";
		echo "help     Display this help message\n";
		echo "\n\n";
	}
	
	public static function helpSyncNew() {
		echo "Create new sync profile\n\n";
		echo "   | --profilename               * Profile name\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-l | --localobject [objectName]  * Name of root local folder\n";
		echo "-o | --remoteobject [objectName]  Name of root remote object folder (default is bucket root)\n";		
		echo "   | --masterlocal               Master is local\n";
		echo "   | --masterremote              Master is remote\n";
		echo "   | --clobber                   Clobber (delete) non-master files which don't exist on master\n";
		echo "\n\n";
	}
	
	public static function helpSyncOneShot() {
		echo "Run a one-time sync job\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-l | --localobject [objectName]  * Name of root local folder to sync\n";
		echo "-o | --remoteobject [objectName]  Name of root remote object folder (default is bucket root)\n";		
		echo "   | --masterlocal               Master is local\n";
		echo "   | --masterremote              Master is remote\n";
		echo "   | --clobber                   Clobber (delete) non-master files which don't exist on master\n";
		echo "   | --strict                    Fail of errors (eg: can't chdir into a dir)";
		echo "\n\n";
	}
	
	public static function helpSyncList() {
		echo "List sync profiles\n\n";
		echo "-b | --bucket [bucketName]  * Name of bucket\n";
		echo "   | --this                 only list jobs related to this system\n";
		echo "\n\n";
	}
	
	public static function helpSyncDelete() {
		echo "List sync profiles\n\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "   | --uuid [uuid]  * UUID to delete (use 'sync list' to see a list of UUIDs)\n";
		echo "\n\n";
	}
	
	public static function helpAWSLibFunctions() {
		echo "Show various local AWS library constants and debug info\n\n";
		echo "s3version       AmazonEC2::VERSION\n";
		echo "s3apiname       AmazonEC2::NAME\n";
		echo "s3apiuseragent  AmazonEC2::USERAGENT\n";
		echo "gpgencrypt      Fires up the gpg encryption module\n";
		echo "gpgdecrypt      Fires up the gpg decryption module\n";
		echo "\n\n";
	}
	
	public static function helpAWSLibGPGEncrypt() {
		echo "Fires up the gpg encryption module\n";
		echo "-l | --localobject [objectName]  * Name of root local folder to sync\n";
		echo "\n\n";
	}
	
	public static function helpAWSLibGPGDecrypt() {
		echo "Fires up the gpg decryption module\n";
		echo "-b | --bucket [bucketName]       * Name of bucket\n";
		echo "-l | --localobject [objectName]  * Decryption results\n";
		echo "-o | --remoteobject [objectName] * Name of root remote object folder to be decrypted\n";
		echo "\n\n";
	}
}
?>
